/*
 * DatosAcademicosEstudiante.java
 *
 * Created on 13 de octubre de 2007, 03:15 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */
package wasolicitudesfiec.xml.ayudantias;

import wasolicitudesfiec.xml.DOMXMLConversion;
import org.w3c.dom.Element;

/**
 * Esta clase solo contiene datos academicos generales de un estudiante y unicamente eso
 * sin datos de cualquiese materia en particular.
 * @author Luisfer
 */
public class DatosAcademicosEstudiante extends DOMXMLConversion {

    public static String relativePATH_XML = "\\xml\\SolicitarSerAyudante\\XMLDatosAcademicosEstudiante.xml";
    public final static String tagnameROOT = "XMLDatosAcademicosEstudiante";
//    private final static String tagnameCODIGO_MATERIA="codigo_materia";
    private final static String tagnamePROM_GENERAL = "promedio_general";
//    private final static String tagnamePROM_FACULTAD = "promedio_facultad";
    private final static String tagnameNUM_MAT_APROBADAS = "numero_materias_aprobadas";
    private final static String tagnameES_ESTUDIANTE_REGULAR = "es_estudiante_regular";
    private final static String tagnameREPROBO_EN_SEMESTRE_ANTERIOR = "reprobo_en_semestre_anterior";
    private final static String tagnameFUE_SANCIONADO = "fue_sancionado";
    private final static String tagnameTIENE_DEUDAS = "tiene_deudas";
    private final static String tagnamePERDIO_BECA = "perdio_beca";
    private final static String tagnameFACTOR_P = "factor_p";
    private final static String tagnameNIVEL = "nivel";
    /** Creates a new instance of DatosAcademicosEstudiante */
//    protected Double promMateria; Este dato no debe ir aqui
//    protected String codigoMateria; Este dato no debe ir aqui
    protected Double promGeneral;
//    protected Double promFacultad;
    protected Integer numMatAprobadas;
    protected Boolean esEstudianteRegular;
    protected Boolean reproboEnSemestreAnterior;
    protected Boolean fueSancionado;
    protected Boolean tieneDeudas;
    protected Boolean perdioBeca;
    protected Integer factorP;
    protected Integer nivel;

    public DatosAcademicosEstudiante() {
        super();
        this.relativePathXML = relativePATH_XML;
    }

    public DatosAcademicosEstudiante(String realPath) {
        super(realPath);
        this.relativePathXML = relativePATH_XML;
    }

    protected void obtenerInformacion(String matricula) {
        this.setNumMatAprobadas(new Integer(matricula));
//        this.setPromFacultad(new Double(matricula));
        this.setPromGeneral(new Double(matricula));
//        this.setPromMateria(new Double(matricula));
        this.setFueSancionado(matricula.length() % 2 == 0);
    }

    // <editor-fold defaultstate="collapsed" desc=" Metodos Getter y Setter ">
//    public Double getPromMateria() {
//        return promMateria;
//    }
//
//    public void setPromMateria(Double promMateria) {
//        this.promMateria = promMateria;
//    }

//    public String getCodigoMateria() {
//        return codigoMateria;
//    }

//    public void setCodigoMateria(String codigoMateria) {
//        this.codigoMateria = codigoMateria;
//    }
    public Double getPromGeneral() {
        return promGeneral;
    }

    public void setPromGeneral(Double promGeneral) {
        this.promGeneral = promGeneral;
    }

    public Integer getNumMatAprobadas() {
        return numMatAprobadas;
    }

    public void setNumMatAprobadas(Integer numMatAprobadas) {
        this.numMatAprobadas = numMatAprobadas;
    }

    public Boolean getEsEstudianteRegular() {
        return esEstudianteRegular;
    }

    public void setEsEstudianteRegular(Boolean esEstudianteRegular) {
        this.esEstudianteRegular = esEstudianteRegular;
    }

    public Boolean getReproboEnSemestreAnterior() {
        return reproboEnSemestreAnterior;
    }

    public void setReproboEnSemestreAnterior(Boolean reproboEnSemestreAnterior) {
        this.reproboEnSemestreAnterior = reproboEnSemestreAnterior;
    }

    public Boolean getFueSancionado() {
        return fueSancionado;
    }

    public void setFueSancionado(Boolean fueSancionado) {
        this.fueSancionado = fueSancionado;
    }

    public Boolean getTieneDeudas() {
        return tieneDeudas;
    }

    public void setTieneDeudas(Boolean tieneDeudas) {
        this.tieneDeudas = tieneDeudas;
    }

    public Boolean getPerdioBeca() {
        return perdioBeca;
    }

    public void setPerdioBeca(Boolean perdioBeca) {
        this.perdioBeca = perdioBeca;
    }

   
    public Integer getFactorP() {
        return factorP;
    }

    public void setFactorP(Integer factorP) {
        this.factorP = factorP;
    }

    public Integer getNivel() {
        return nivel;
    }

    public void setNivel(Integer nivel) {
        this.nivel = nivel;
    }
    // </editor-fold>
    protected void cargarObjetoAPartirDeXML_Interno() {
        // <editor-fold defaultstate="collapsed" desc="borrado">
//////        Element raiz=this.obtenerElementoRaizDOMXML();
////////        this.codigoMateria=raiz.getElementsByTagName(tagnameCODIGO_MATERIA).item(0).getTextContent().trim();
//////        this.promGeneral=new Double(raiz.getElementsByTagName(tagnamePROM_GENERAL).item(0).getTextContent().trim());
//////        this.promFacultad=new Double(raiz.getElementsByTagName(tagnamePROM_FACULTAD).item(0).getTextContent().trim());
//////        this.numMatAprobadas=new Integer(raiz.getElementsByTagName(tagnameNUM_MAT_APROBADAS).item(0).getTextContent().trim());
//////        this.esEstudianteRegular=new Boolean(raiz.getElementsByTagName(tagnameES_ESTUDIANTE_REGULAR).item(0).getTextContent().trim());
//////        this.reproboEnSemestreAnterior=new Boolean(raiz.getElementsByTagName(tagnameREPROBO_EN_SEMESTRE_ANTERIOR).item(0).getTextContent().trim());
//////        this.fueSancionado=new Boolean(raiz.getElementsByTagName(tagnameFUE_SANCIONADO).item(0).getTextContent().trim());
//////        this.tieneDeudas=new Boolean(raiz.getElementsByTagName(tagnameTIENE_DEUDAS).item(0).getTextContent().trim());
//////        this.perdioBeca=new Boolean(raiz.getElementsByTagName(tagnamePERDIO_BECA).item(0).getTextContent().trim());
//////        this.factorP=new Integer(raiz.getElementsByTagName(tagnameFACTOR_P).item(0).getTextContent().trim());
//////        this.nivel=new Integer(raiz.getElementsByTagName(tagnameNIVEL).item(0).getTextContent().trim());
        // </editor-fold>

        //se asume que el objeto rootElement ha sido cargado satisfactoreamente, pues de no ser asi no funcionara
        //el metodo getElementText y los otros       
        this.promGeneral = this.getElementTextAsDouble(tagnamePROM_GENERAL);
//        this.promFacultad = this.getElementTextAsDouble(tagnamePROM_FACULTAD);
        this.numMatAprobadas = this.getElementTextAsInteger(tagnameNUM_MAT_APROBADAS);
        this.esEstudianteRegular = this.getElementTextAsBoolean(tagnameES_ESTUDIANTE_REGULAR);
        this.reproboEnSemestreAnterior = this.getElementTextAsBoolean(tagnameREPROBO_EN_SEMESTRE_ANTERIOR);
        this.fueSancionado = this.getElementTextAsBoolean(tagnameFUE_SANCIONADO);
        this.tieneDeudas = this.getElementTextAsBoolean(tagnameTIENE_DEUDAS);
        this.perdioBeca = this.getElementTextAsBoolean(tagnamePERDIO_BECA);
        this.factorP = this.getElementTextAsInteger(tagnameFACTOR_P);
        this.nivel = this.getElementTextAsInteger(tagnameNIVEL);
    }

    protected void crearXML_Interno() {
        this.crearXMLInternoDOMDOC();
    }

    private void crearXMLInternoDOMDOC() {
        // <editor-fold defaultstate="collapsed" desc="borrado">
//        Element raiz;
////        raiz=(Element)this.documento.getElementsByTagName(tagnameROOT).item(0);
//        raiz=this.obtenerElementoRaizDOMXML();
//        raiz.getElementsByTagName(tagnameCODIGO_MATERIA).item(0).setTextContent(this.codigoMateria);

//////        raiz.getElementsByTagName(tagnameES_ESTUDIANTE_REGULAR).item(0).setTextContent(this.esEstudianteRegular!=null?this.esEstudianteRegular.toString():"");
//////        raiz.getElementsByTagName(tagnameFACTOR_P).item(0).setTextContent(this.factorP!=null?this.factorP.toString():"");
//////        raiz.getElementsByTagName(tagnameFUE_SANCIONADO).item(0).setNodeValue(this.fueSancionado!=null?this.fueSancionado.toString():"");
//////        raiz.getElementsByTagName(tagnameNIVEL).item(0).setTextContent(this.nivel!=null?this.nivel.toString():"");
//////        raiz.getElementsByTagName(tagnameNUM_MAT_APROBADAS).item(0).setTextContent(this.numMatAprobadas!=null?this.numMatAprobadas.toString():"");
//////        raiz.getElementsByTagName(tagnamePERDIO_BECA).item(0).setTextContent(this.perdioBeca!=null?this.perdioBeca.toString():"");
//////        raiz.getElementsByTagName(tagnamePROM_FACULTAD).item(0).setTextContent(this.promFacultad!=null?this.promFacultad.toString():"");
//////        raiz.getElementsByTagName(tagnamePROM_GENERAL).item(0).setTextContent(this.promGeneral!=null?this.promGeneral.toString():"");
//////        raiz.getElementsByTagName(tagnameREPROBO_EN_SEMESTRE_ANTERIOR).item(0).setTextContent(this.reproboEnSemestreAnterior!=null?this.reproboEnSemestreAnterior.toString():"");
//////        raiz.getElementsByTagName(tagnameTIENE_DEUDAS).item(0).setTextContent(this.tieneDeudas!=null?this.tieneDeudas.toString():"");
        // </editor-fold>

        //se asume que el objeto rootElement ha sido cargado satisfactoreamente, pues de no ser asi no funcionara
        //el metodo setElementText
        this.setElementText(tagnameES_ESTUDIANTE_REGULAR, this.esEstudianteRegular);
        this.setElementText(tagnameFACTOR_P, this.factorP);
        this.setElementText(tagnameFUE_SANCIONADO, this.fueSancionado);
        this.setElementText(tagnameNIVEL, this.nivel);
        this.setElementText(tagnameNUM_MAT_APROBADAS, this.numMatAprobadas);
        this.setElementText(tagnamePERDIO_BECA, this.perdioBeca);
//        this.setElementText(tagnamePROM_FACULTAD, this.promFacultad);
        this.setElementText(tagnamePROM_GENERAL, this.promGeneral);
        this.setElementText(tagnameREPROBO_EN_SEMESTRE_ANTERIOR, this.reproboEnSemestreAnterior);
        this.setElementText(tagnameTIENE_DEUDAS, this.tieneDeudas);
    }
}
